package com.bonshotels.DomainLayer.ServeiAutoritzacioCredit;

import java.util.Date;

import com.bonshotels.DomainLayer.DomainModel.BonsHotels;
import com.bonshotels.DomainLayer.ServiceLocator.ServiceLocator;
import com.bonshotels.DomainLayer.Stubs.ServeiAutoritzacioCredit;
import com.bonshotels.Excepcions.ServeiNoDisponible;

/**
 * Classe AdaptadorServeiAutoritzacioCredit.
 * 
 * La classe AdaptadorServeiAutoritzacioCredit es la que implementa al patro de 
 * disseny adaptador amb el servei AutoritzacioCredit. Amb aquest patro de disseny
 * aconseguim un disseny mes canviable.
 * @author Jordi Sabater
 */
public class AdaptadorServeiAutoritzacioCredit 
  implements IObjectiuServeiAutoritzacioCredit {

	/**
	 * Realitza un pagament amb tarja. Pot propagar una excepcio si el servei
	 * no esta disponible en el moment de fer la transaccio o qualsevol altre
	 * tipus derror.
	 *
	 * @param numTarj Numero de la tarjeta de credit.
	 * @param dCad Data de caducitat de la tarjeta de credit.
	 * @param preuTotal Preu que cal cobrar de la tarjeta de credit.
	 * @throws ServeiNoDisponible El servei no esta disponible en el moment
	 *  de fer la transaccio o retorna algun tipus derror.
	 */
	@Override
	public void pagament(String numTarj, Date dCad, float preuTotal) throws ServeiNoDisponible {
		ServeiAutoritzacioCredit sac = 
		  ServiceLocator.obteInstancia().find("ServeiAutoritzacioCredit");
		Date avui = BonsHotels.obteInstancia().obteAvui();
		sac.pagament(numTarj, dCad, preuTotal, avui);
	}
	

}
